Smart channel device

ABSTRACT

According to one embodiment, a channel device includes a memory, an interface, and a processor. The memory stores a watch list. The watch list includes n predetermined number of channels, wherein n is an integer and the predetermined number of channels are ranked from one to n. The interface is configured to receive program information for a first channel, wherein the first channel is a channel of a watch list. The processor is further configured to determine a change from a previous channel to a current channel. The processor dynamically updates the watch list to include the previous channel, wherein the previous channel is ranked as one. The processor removes the channel ranked as n from the watch list.

RELATED APPLICATION

This patent arises from a continuation of U.S. patent application Ser.No. 16/579,913, (now U.S. Pat. No. 11,259,095) which was filed on Sep.24, 2019, which is a continuation of U.S. patent application Ser. No.15/427,538, (now U.S. Pat. No. 10,462,527) which was filed on Feb. 8,2017. U.S. patent application Ser. No. 16/579,913 and U.S. patentapplication Ser. No. 15/427,538 are hereby incorporated herein byreference in their entirety. Priority to U.S. patent application Ser.No. 16/579,913 and U.S. patent application Ser. No. 15/427,538 arehereby claimed.

TECHNICAL FIELD

The present disclosure relates generally to program viewing systems andmore particularly to a smart channel device.

BACKGROUND

Users watch multiple channels using a program viewing device. Forexample, a user may switch between a plurality of channels during aviewing session. Switching between multiple channels may lead to a usermissing at least part of a scheduled program. For example, a user mayswitch channels and fail to return to the initial channel before ascheduled program begins. The conventional approach fails to notify auser when programming is scheduled to begin.

SUMMARY

In one embodiment, a channel device includes a memory, an interface, anda processor. The memory stores a watch list. The watch list includes npredetermined number of channels, wherein n is an integer and thepredetermined number of channels are ranked from one to n. The interfaceis configured to receive program information for a first channel,wherein the first channel is a channel of a watch list. The processor isfurther configured to determine a change from a previous channel to acurrent channel. The processor dynamically updates the watch list toinclude the previous channel, wherein the previous channel is ranked asone. The processor removes the channel ranked as n from the watch list.

In another embodiment, a method includes storing a watch list comprisingn predetermined number of channels, wherein n is an integer. Thepredetermined number of channels are ranked from one to n. The methodfurther includes receiving program information for a first channel,wherein the first channel is a first channel of a watch list. The methodfurther includes determining a change from a previous channel to acurrent channel. The method further includes dynamically updating thewatch list to include the previous channel, wherein the previous channelis ranked as one. The method further includes removing the channelranked as n from the watch list.

The present disclosure presents several technical advantages. In oneembodiment, a viewing system communicates notifications to a user beforea program of interest is scheduled to begin, thus reducing oreliminating the problem of displaying programs that are of less interestto the user. A problem inherent with program viewing systems is thatusers often “channel surf” (i.e., scroll through channels). As users arechannel surfing, the user may lose track of time and/or forget to tunein to a scheduled program. The unconventional approach contemplated inthis disclosures reduces or eliminates this problem inherent in viewingsystems by providing notifications to users before a program of interestis scheduled to begin.

In an embodiment, a set-top box stores and dynamically revises a list ofchannels that may be of interest to a user. Conventional systems lackthe capability to communicate the most relevant notifications to a userbecause conventional systems fail to dynamically update a channel listto include the most relevant channels. The unconventional approachcontemplated in this disclosure provides more relevant notifications tousers, thus reducing or eliminating the problem of a user missingdesired programming. The approach provides more relevant notificationsby dynamically revising a channel list as a user changes channels duringa viewing session. This allows the channel list to be up to date withchannels that may interest a user. Dynamically revising and storing thechannel list allows the system contemplated in this disclosure tocommunicate more relevant notifications to the user based on the morerelevant channels in the channel list.

Certain embodiments of the present disclosure may include some, all, ornone of these advantages. These advantages and other features will bemore clearly understood from the following detailed description taken inconjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is nowmade to the following brief description, taken in connection with theaccompanying drawings and detailed description, wherein like referencenumerals represent like parts in which:

FIG. 1 illustrates a system for communicating program notifications;

FIG. 2 illustrates the watch list of the system of FIG. 1, in certainembodiments;

FIG. 3 illustrates a notification of the system of FIG. 1, in certainembodiments; and

FIG. 4 is a flowchart illustrating a method for communicating programnotifications using the system of FIG. 1.

DETAILED DESCRIPTION

Providing relevant programming notifications presents several technicalchallenges. As a user views programming, the user may scroll through aplurality of channels. For example, a user may watch a program on afirst channel, but then cycle through additional channels when, forexample, a commercial is shown on the first channel. As another example,a user may attempt to watch two or more programs at a single time,switching between the channels showing the programs. As the userattempts to view two or more programming channels during a singleviewing session, the user may lose track of time and/or the programsscheduled to air on certain channels. Thus, a user may unintentionallyfail to view one or more n programs. The conventional approach mayprovide programming schedule for a user to view. However, the user maynot continuously view the schedule and may not realize when a scheduledprogram is about to begin.

This disclosure contemplates providing dynamic notifications indicatingthat one or more programs is about to begin. In the unconventionalapproach, a channel device, such as a set-top box, obtains a watch list.The watch list includes channels that are most relevant to a user. Forexample, the watch list may include channels that are watched most oftenor watched for the longest period of time. As a user is scrollingthrough channels, the channels that the user views are added to thewatch list. This reduces or eliminates the problems inherent in viewingsystem by maintaining and revising a list of channels that are mostrelevant to a user.

Furthermore, notifications are communicated to the user to indicate thata program on one or the programming channels of the watch list is aboutto begin. The channel device monitors the channels on the watch list todetermine when a program on one of the channels is scheduled to begin.Shortly before a program is scheduled to begin, the channel devicegenerates a notification to communicate to the user. This reduces oreliminates missing scheduled programs an inherent problem of viewingsystems.

FIG. 1 illustrates a system 100 configured to communicate programnotifications. Generally, system 100 maintains and revises watch list135 and communicates notifications 150 to user 102. As illustrated inFIG. 1, system 100 includes one or more users 102, one or more userdevices 104, service provider 105, display 110, channel device 115,network database 120, and network 155. User 102 may utilize system 100to view programming and information associated with programming. Inparticular embodiments, system 100 communicates notifications 150 touser 102 via display 110.

In the illustrated embodiment, system 100 includes users 102 a-n. System100 may include one user 102 or any suitable number of users 102. User102 generally uses system 100 to view programming. For example, user 102may be a subscriber such as a cable and/or satellite subscriber, afamily member of a subscriber, a friend of a subscriber, or othersuitable person who utilizes system 100 to view programming.

As shown in FIG. 1, user 102 may be associated with user device 104.System 100 may include a single user device 104 or any suitable numberof user devices 104. In some embodiments, each user 102 is associatedwith a user device 104. In other embodiments, a plurality of users 102are associated with a single user device 104. User device 104 may be anydevice that operates and/or communicates with other components of system100 regarding program viewing. User 102 generally uses user device 104to communicate commands or otherwise provide input to channel device 115and/or display 110. This disclosure contemplates user device 104communicating directly with channel device 115 and/or display 110. Forexample, user device 104 may communicate with channel device 115 and/ordisplay 110 using radio frequency signals, infrared signals, Bluetooth,and/or any other signaling technology and/or protocol. As anotherexample, user device 104 may communicate with components of system 100through network 155.

As an example and not by way of limitation, user device 104 may be aremote control, such as a universal remote or any other type of remote,a computer, a laptop, a wireless or cellular telephone, an electronicnotebook, a personal digital assistant, a tablet, or any other devicecapable of receiving and/or communicating information with othercomponents of system 100. User device 104 may also include a userinterface, such as a keypad, a display, a microphone, or otherappropriate terminal equipment usable by user 102. In some embodiments,an application executed by user device 104 may perform the functionsdescribed herein.

Service provider 105 generally communicates program information 160 tochannel device 115. For example, service provider 105 may communicateprogram information 160 to channel device 115 via network 155. In someembodiments, service provider 105 communicates program information 160directly to channel device 115. For example, service provider 105communicates program information 160 to channel device 115 via radiofrequency signals transmitted through coaxial cables, in someembodiments. Service provider 105 may communicate program information160 via light pulses through fiber-optic cables, over the air radiowaves, through network 155 (e.g., through the internet or telephonenetwork), or any other suitable means of transmission.

Program information 160 generally includes information for programmingchannels. For example, program information 160 may include audio and/orvideo information for displaying a program. Program information 160 mayinclude a schedule of programs for one or more program channels, thetitle of one or more programs, images associated with one or moreprograms, watch list 135, and/or any other suitable information tofacilitate viewing programming via display 110.

Network 155 facilitates communication between and amongst the variouscomponents of system 100. This disclosure contemplates network 155 beingany suitable network operable to facilitate communication between thecomponents of system 100. Network 155 may include any interconnectingsystem capable of transmitting audio, video, signals, data, messages, orany combination of the preceding. Network 155 may include all or aportion of a public switched telephone network (PSTN), a public orprivate data network, a local area network (LAN), a metropolitan areanetwork (MAN), a wide area network (WAN), a cloud network, a local,regional, or global communication or computer network, such as theInternet, a wireline or wireless network, an enterprise intranet, or anyother suitable communication link, including combinations thereof,operable to facilitate communication between the components.

Channel device 115 is generally a device that receives input andgenerates audio and/or video output for display by display 110. Forexample, channel device 115 may receive radio frequency analogtelevision input, digital television input, satellite television input,and/or any other suitable type of input that contains programinformation 160. Channel device 115 may receive program information 160from service provider 105. In some embodiments, channel device 115converts the input into audio and/or video signals, which can be used toproduce sound and picture. Channel device 115 may be or comprise aset-top box, a ultra high frequency (UHF) converter, a cable converterbox, a closed captioning box, a digital television adapter, anintegrated receiver/decoder, a hybrid box, and/or an Internet ProtocolTelevision (IPTV) receiver. Channel device 115 may be any suitabledevice that receives program information 160 and sends information todisplay 110 for display. In the illustrated embodiment, channel device115 includes interface 125, processor 130, and memory 145.

Interface 125 represents any suitable device operable to receiveinformation from network 155, transmit information through network 155,perform suitable processing of the information, communicate withcomponents of system 100 and/or other devices, or any combination of thepreceding. For example, interface 125 transmits data to display 110. Asanother example, interface 125 receives information from serviceprovider 105. As a further example, interface 125 transmits data to—andreceives data from—network database 120. Interface 125 represents anyport or connection, real or virtual, including any suitable hardwareand/or software, including protocol conversion and data processingcapabilities, to communicate through a LAN, WAN, or other communicationsystems that allows channel device 115 to exchange information withservice provider 105, network database 120, display 110, and/or othercomponents of system 100 directly or via network 155. Interface 125 isnot limited to a single interface and may encompass multiple interfaces.

Processor 130 is any electronic circuitry, including, but not limited tomicroprocessors, application specific integrated circuits (ASIC),application specific instruction set processor (ASIP), and/or statemachines, that communicatively couples to memory 145 and interface 125and controls the operation of channel device 115. Processor 130 may be8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture.Processor 130 may include an arithmetic logic unit (ALU) for performingarithmetic and logic operations, processor registers that supplyoperands to the ALU and store the results of ALU operations, and acontrol unit that fetches instructions from memory 145 and executes themby directing the coordinated operations of the ALU, registers and othercomponents. Processor 130 may include other hardware and software thatoperates to control and process information. Processor 130 executessoftware stored on memory 145 to perform any of the functions describedherein. Processor 130 controls the operation and administration ofchannel device 115 by processing information received from network 155,service provider 105, network database 120, memory 145, and/or any othersuitable component of system 100. Processor 130 may be a programmablelogic device, a microcontroller, a microprocessor, any suitableprocessing device, or any suitable combination of the preceding.Processor 130 is not limited to a single processing device and mayencompass multiple processing devices.

Memory 145 may store, either permanently or temporarily, data,operational software, or other information for processor 130. Memory 145may be a computer-readable non-transitory storage medium, in someembodiments. Memory 145 may include any one or a combination of volatileor non-volatile local or remote devices suitable for storinginformation. For example, memory 145 may include random access memory(RAM), read only memory (ROM), magnetic storage devices, optical storagedevices, or any other suitable information storage device or acombination of these devices. The software represents any suitable setof instructions, logic, or code embodied in a computer-readable storagemedium. For example, the software may be embodied in memory 145, a disk,a CD, or a flash drive. In particular embodiments, the software mayinclude an application executable by processor 130 to perform one ormore of the functions described herein. In particular embodiments,memory 145 may store logic 140, watch list 135, and/or any othersuitable information. This disclosure contemplates memory 145 storingany of the elements stored in database 120, user device 104, display110, and/or any other suitable components of system 100.

Memory 145 may include logic 140. Logic 140 generally refers to logic,rules, algorithms, codes, tables, and/or other suitable instructionsembodied in a computer-readable storage medium for operation of channeldevice 115. For example, logic 140 may include rules and/or otherinstructions to facilitate dynamically revising watch list 135.

Watch list 135 is generally a list of programming channels. Serviceprovider 105 may provide information to channel device 115 for one ormore programming channels. User 102 may tune into one or more of theprogramming channels over a period of time. In some embodiments, watchlist 135 includes a list of programming channels that may be of interestto one or more users 102. For example, watch list 135 may include a listof programming channels that are most watched using channel device 115.For example, watch list 135 may include a list of programming channelsthat are watched most frequently, watched for the longest period oftime, watched most consistently, and/or any other parameter to indicatethat the programming channels may be of interest to one or more users102. Programming channels in watch list 135 may be associated with aranking. For example, each channel may be associated with a numericalranking (e.g., 1-10), an alphanumerical ranking (e.g., a-z), or anyother suitable ranking. A higher ranking may indicate that a programmingchannel is watched more often, for a longer length, or more recently.Watch list 135 may include any suitable number of programming channels.For example, watch list 135 may include 1, 3, 5, 10, or 100 channels. Insome embodiments, watch list 135 is associated with channel device 115.In these embodiments, watch list 135 may include relevant shows formultiple users 102 that use the same channel device 115. In someembodiments, watch list 135 may be associated with a particular user102. Channel device 115 may dynamically update or otherwise revise watchlist 135 while one or more users are utilizing channel device 115 towatch programming. For example, and as discussed in more detail below,channel device 115 may modify watch list 135 as a user 102 switchesbetween programming channels (e.g., by using user device 104).

Channel device 115 generates and communicates notifications 150 todisplay 110, in some embodiments. Display 110 generally displaysnotifications 150. Notifications 150 generally notify user 102 ofinformation associated with one or more programming channels. In someembodiments, the predetermined time is a default time. For example, thedefault time may be 1 minute, 3 minutes, 5 minutes, or any suitable timeperiod. In some embodiments, user 102 may set the predetermined timeusing user device 104. For example, notifications 150 may indicate thata program is going to begin in a predetermined amount of time on aprogramming channel. In some embodiments, notifications 150 may includea request for input from user 102. Notifications 150 may allow a user102 to select commands using user device 104. Commands a include acommand to dismiss notification 150, to change programming channels, torecord a program, and/or any other suitable type of command.Notification 150 may include an image associated with a program. In someembodiments notification 150 may include a video associated with aprogram. For example, notification 150 may include a live stream of aprogram. Information associated with notifications 150 may be storedusing memory 145 and/or database 120. Notification 150 is discussed inmore detail in FIG. 3.

Display 110 generally receives audio and/or video information fromchannel device 115 and outputs the audio and/or video information forviewing by one or more users 102. Display 110 may be any device capableof displaying audio and/or video information. For example and not by wayof limitation, display 110 may be a television, a smart television, acomputer monitor, a smart phone, a desktop, a laptop, a projector, anaugmented reality device, a virtual reality device, or any othersuitable type of device having a display.

System 100 may include database 120, which stores data. In theillustrated embodiment, database 120 stores watch list 135. Database 120may store watch list 135 in addition to channel device 115. In someembodiments, database 120 may store watch list in lieu of channel device115. Database 120 may be a network database, in some embodiments.Database 120 may include any one or a combination of volatile ornon-volatile local or remote devices suitable for storing information.For example, database may include RAM, ROM, magnetic storage devices,optical storage devices, or any other suitable information storagedevice or a combination of these devices. This disclosure contemplatesdatabase 120 storing any of the elements stored in channel device 115,display 110, service provider 105, user device 104, and/or any othersuitable components of system 100. In some embodiments, database 120 islocated within service provider 105. Database 120 may be located in anysuitable component of system 100 and/or any other suitable location.

In a first exemplary embodiment of operation, channel device 115determines information associated with programming channels on watchlist 135 and communicates notifications 150 to display 110. For example,channel device 115 receives a programming schedule for each channel inwatch list 135 from service provider 105. Channel device 115 determineswhen a program is scheduled to begin for each of the programmingchannels on watch list 135. At the predetermined time before a programis scheduled to begin, channel device 115 communicates a notification150 to display 110.

In some embodiments, a plurality of programming channels on watch list135 may begin scheduled programming at the same time or near the sametime (e.g., within 1, 2, or 5 minutes). For example, watch list 135 mayinclude three programming channels, channel 1, channel 2, and channel 3.Each channel may be scheduled to begin a program at the same time. Forexample, channel 1, channel 2, and channel 3, may be scheduled to beginprogram 1, program 2, and program 3, respectively, at the same time(e.g., 7:00 p.m.). In this embodiment, channel device 115 may generatethree notifications 150 at the predetermined amount of time before 7:00p.m. (e.g., 6:57 p.m.).

In an embodiment, display 110 may display a single notification 150 at atime. For example, when channel device 115 generates three notifications150 a-c, display 110 may display only one of the notifications at anygiven time. For example, display 110 may display a single notification150. As another example, display 110 may cycle through a plurality ofnotifications 150. In some embodiments, notification 150 associated witha programming channel of the highest ranking is displayed beforenotifications 150 associated with programming channels of lowerrankings. For example, if channel 1 is ranked higher than channel 2,notification 150 a for channel 1 is displayed before notification 150 bfor channel 2. In another embodiment, display 110 may display aplurality of notifications 150 at a single time.

Display 110 displays notification 150 a. Notification 150 a may solicitinput from user 102. For example, notification 150 a may include anoption to dismiss notification 150 a. In this example, user 102 may useuser device 104 to communicate a command to dismiss notification 150 ato channel device 115 and/or display 110. Once user 102 communicates acommand to dismiss notification 150 a, display 110 may displaynotification 150 b. User 102 may dismiss notification 150 b, asdiscussed, and display 110 will display notification 150 c. In someembodiments, notification 150 may be automatically dismissed after apredetermined period of time if no input is received from user 102.Notifications 150 are discussed in more detail in relation to FIG. 3.

Modifications, additions, or omissions may be made to system 100 withoutdeparting from the scope of the disclosure. For example, system 100 mayinclude any number of processors 130, memory 145, user devices 104,and/or databases 120. Furthermore, the components of system 100 may beintegrated or separated. For example, in particular implementations,memory 145 may be separated into multiple memories 145 to store the datadescried herein. As another example, channel device 115 may be locatedwithin service provider 105. As shown as the components of system 100communicating through network 155, any component of system 100 maycommunicate directly with any other component.

FIG. 2 is an example illustration of watch list 135. In certainembodiments, user 102 may view watch list while in other embodimentsuser 102 may not view watch list 135. Watch list 135 may be in anysuitable format that allows for channel device 115 to access informationregarding a user's 102 viewing history and facilitates providingrelevant notifications to user 102. Watch list 135 includes ranking 205,channel number 210, and channel name 215. In some embodiments, watchlist 135 may include only one of channel number 210 and channel name215. This disclosure contemplates watch list 135 including two, three,five, ten, or any suitable number of channel numbers 210 and theirassociated channel names 215. Rank 205 generally indicates a rankingassociated with a programming channel relative to other programmingchannels in watch list 135. As discussed, rank 205 indicates how oftenand/or how recently a programming channel is watched. Channel number 210represents a number associated with a programming channel. For example,each programming channel associated with service provider 105 has aparticular number for viewing content on the programming channel. Forexample, the XYZ programming channel may be associated with channelnumber 17. Channel name 215 indicates a name of a programming channel ornetwork. Generally each programming channel associated with serviceprovider 105 has a name. Channel name 215 indicates the name. As seen inthe illustrated embodiment, watch list 135 includes one or moreprogramming channels associated each associated with a ranking. Watchlist 135 may be in any particular format that includes programmingchannels and ranks the channels.

In a second exemplary embodiment, user 102 powers on channel device 115using user device 104. Channel device 115 obtains watch list 135 fromdatabase 120 and/or memory 145. In this, embodiment, watch list 135initially includes three programming channels, channel 1, channel 2, andchannel 3, ranked a, b, and c, respectively. An example table of watchlist 135 is shown below:

Rank Channel a 1 b 2 C 3

As an example, user 102 begins viewing a first programming channel,channel 4. User 102 may navigate to channel 4 from a home screen orchannel 4 may be automatically displayed when user 102 powers on channeldevice 115 using user device 104.

User 102 may then switch the programming channel to a second channel,channel 2 using user device 104. When user 102 switches to channel 2,channel device 115 determines whether the immediate previously viewedchannel, channel 4, is in watch list 135. Upon a determination thatchannel 4 is not within watch list 135, channel device 115 adds channel4 to watch list 135. Because channel 4 was the immediate previouslyviewed channel, channel device 115 assigns channel 4 the highestranking, i.e., the rank 205 of a in this example. Each other channel inwatch list 135 is moved down one rank except for the lowest rankedchannel. The lowest ranked channel, channel 3 in this example, isremoved from watch list 135. Thus, watch list 135 maintains threechannel numbers in this embodiment. As previously discussed, watch list135 may include any suitable number of channels. An example table ofwatch list 135 after user switches from channel 4 to channel 5 is showbelow:

Rank Channel a 4 b 1 c 2

After a period of time, user 102 uses device 104 to switch theprogramming channel from channel 2 to channel 5. When the programmingchannel is changed, channel device 115 determines whether the immediateprevious channel (i.e., channel 2) is in watch list 135. Upon adetermination that channel 2 is in watch list 135, channel device 115changes the rank 205 of channel 2 to the highest rank 205, i.e., therank of “a.” Channel device 115 moves the rank 205 of each otherprogramming channel in watch list 135 down one level. An example tableof watch list 135 after user 102 switches from channel 2 to channel 5 isshown below:

Rank Channel a 2 b 4 C 1

After a period of time, user 102 powers off channel device 115. Forexample, user 102 may use user device 104 to power off channel device115 or user 102 may power off channel device 115 by pressing a button onchannel device 115. Once channel device 115 is powered off, watch list135 is revised to include a list of the “most watched” channelsassociated with the watch list 135. For example, watch list 135 mayrevert to include the programming channels and rankings it includedbefore user 102 powered on channel device 115. However, in someembodiments, user's 102 viewing session may cause the “most watched”list of channels to change, and watch list 135 may be revisedaccordingly.

In some embodiments, an immediate previous channel may not be added towatch list 135. For example, an immediate previous channel may not beadded to watch list 135 if the channel is viewed for less than apredetermined amount of time (e.g., one second, five seconds, oneminute, or any other suitable amount of time). For example, if user 102is watching channel 1 and quickly changes through channels 2, 3, and 4to reach channel 5, channels 2, 3, and 4 may not be added to watch list135, in some embodiments.

FIG. 3 illustrates display 110 displaying notification 150, in someembodiments. As illustrated in FIG. 3, display 110 may display program300. Program 300 represents a program currently displayed by display110. When display 110 receives notification 150, notification 150 isdisplayed on display 110. In the illustrated embodiment, notification150 is displayed on top of program 300. Notification 150 may bedisplayed on a small section of display 100, allowing user 102 tocontinue to view program 300, in some embodiments. As illustrated,notification 150 is displayed in the bottom right corner of display 110.Notification 150 may be displayed on any portion of display 110.

In the illustrated embodiment, notification 150 includes program title305, image 310, start time 315, countdown 320, dismiss option 325,record option 330, and watch option 335. Program title 305 indicates thetitle of the program associated with notification 150. For example,program title 305 may indicate the name of a program that is scheduledto begin. Start time 315 indicates the time the program is scheduled tobegin. For example, start time 315 may display 9:00 p.m., when theprogram associated with notification is scheduled to begin at 9:00 p.m.Countdown 320 displays a numerical countdown of the time left before theprogram is scheduled to begin. For example, if a program is scheduled tobegin in three minutes, countdown 320 may include “3:00.” Countdown 320may tick down every second until the program begins (e.g., 2:59, 2:58,etc.). Countdown 320 may include minutes, seconds, milliseconds, and/orany other suitable measure of time.

Notification 150 may also include image 310. Image 310 is generally animage that indicates the program associated with notification 150. Forexample, image 310 may include one or more cast members of the program,or any other suitable image that facilitates identifying the program. Insome embodiments, image 310 may be a video image. For example, if aprogram has started, image 310 may include a live stream of the program.

Notification 150 may solicit input from user 102. For example,notification 150 may include dismiss option 325, record option 330, andwatch option 335. User 102 may use user device 104 to select one or moreof the options to provide input to channel device 115. For example, userdevice 104 may communicate information to channel device 115 and/ordisplay 110 to select one of the inputs. User 102 may depress a buttonon user device 104 associated with dismiss option 325, record option330, or watch option 335. Dismiss option 325 generally dismissesnotification 150. For example, if user 102 depresses a button associatedwith dismiss option 325, notification 150 is removed from display 110.Once notification 150 is removed, program 300 may be displayed on all orsubstantially all of display 110. In some embodiments, an additionalnotification 150 is displayed once user 102 dismisses the firstnotification. Record option 330 is generally a command to record theprogram associated with notification 150. For example, user 102 may wishto continue watching program 300, but may wish to watch the programassociated with notification 150 at a later time. Notification 150facilitates recording the program for user 102 to watch at a later time.The program is stored within memory 145, in some embodiments. User 102may select watch option 335 to tune into the program associated withnotification 150. For example, when user 102 selects watch option 335,channel device 115 may change the channel to the channel associated withnotification 150.

Modifications, additions, or omissions may be made to notification 150without departing from the scope of the disclosure. For example, display110 may display some, none, or all of the information illustrated inFIG. 3. Display 110 may display information in addition to theinformation illustrated in FIG. 3.

FIG. 4 is a flowchart illustrating a method 400 for communicatingprogram notifications 150 using system 100 of FIG. 1. In someembodiments, channel device 115 communicates notifications 150 todisplay 110. Method 400 begins at step 402 where user 102 initiateschannel device 115. For example, user 102 may use user device 104 topower on channel device 115. Channel device 115 obtains watch list 135at step 404. Channel device 115 may obtain watch list 135 from memory145. In some embodiments, channel device 115 obtains watch list 135 fromdatabase 120. At step 406, channel device 115 determines the channels onwatch list 135. As previously discussed, watch list 135 may include aplurality of channels. Channel device 115 may determine each of theplurality of channels on watch list 135. Each of the channels may beranked using a numerical number.

Channel device 115 determines that a channel is changed at step 408. Forexample, Channel device 115 may facilitate changing the channel from aprevious channel to a current channel. For example, user 102 may utilizeuser device 104 to communicate a command to channel device 115 and/ordisplay 110 to change the programming channel. Channel device 115 mayreceive the command and communicate audio and/or video information forthe current channel to display 110 for display.

Upon a determination that display 110 is displaying the current channel,channel device 115 dynamically revises watch list 135 at step 410. Forexample, if the previous channel was not on watch list 135, channeldevice 115 updates watch list 135 to include the previous channel. Inthis example, the previous channel is the highest ranked channel, andthe lowest ranked channel is removed from watch list 135. If theprevious channel was already included in watch list 135, channel device115 changes the rankings of the channels to associate the highestranking with the previous channel. In some embodiments, channel device115 continues to dynamically revise watch list 135 as the channels arechanged.

Channel device 115 may determine program information 160 for all or partof the programming channels on watch list 135 at step 412. As previouslydiscussed, program information 160 includes scheduled programming for aprogram channel. Program information 160 may also include the title ofthe scheduled programs and a start time for the scheduled programsindicating the scheduled time that the programs begin. Channel device115 determines a first time to communicate notification 150 to display110 at step 414. As discussed, channel device 115 may communicatenotification 150 to display 110 at a predetermined time before a programon a channel on watch list 135 is scheduled to begin. For example,channel device 115 may generate notification 150 at a default period oftime before a program is scheduled to begin. As another example, user102 may provide input to indicate a time to generate notification 150.Channel device 115 may determine the first time by using programinformation 160 to determine the start time of a program and subtractingthe predetermined amount of time from the start time.

Channel device 115 generates notifications 150 at step 416. For example,channel device 115 may generate a notification for each of the programsthat is scheduled to begin at the predetermined amount of time. Channeldevice 115 communicates notifications 150 to display 110 for display.Channel device 115 communicates first notification 150 to display 110 atstep 418. Channel device 115 may generate and communicate a plurality ofnotifications 150 for display, wherein each notification 150 isassociated with a channel. In some embodiments, channel device 115determines the order to display notifications 150 by the rank of thechannels in watch list 135.

At step 420, channel device 115 determines whether the programassociated with first notification 150 has started. For example, channeldevice 115 determines the current time and determines whether thecurrent time is past the scheduled starting, time for the program. Upona determination that the current time has passed the scheduled startingtime for the program, channel device 115 generates a live stream of theprogram for display in notification 150. If the scheduled program hasnot begun, the method proceeds to step 424.

Channel device 115 determines whether it receives dismiss input at step424. As discussed, user 102 may respond to first notification 150 usingdevice 104 to indicate to dismiss notification. If channel device 115determines that it received dismiss input, channel device 115 removesfirst notification 150 at step 426 before proceeding, otherwise method400 proceeds to step 438.

Channel device 115 determines whether it receives watch input at step428. As discussed, user 102 may respond to notification 150 using device104 to indicate watching the program associated with first notification150. If channel device 115 determines that it received watch input,channel device 115 communicates audio and/or video information for theprogram associated with the first notification 150 to display 110 fordisplay at step 430. Otherwise, method 400 proceeds to step 432.

Channel device 115 determines whether it receives record input at step432. As discussed, user 102 may respond to notification 150 using device104 to indicate to record the program associated with the firstnotification 150. If channel device 115 determines that it receivedrecord input, channel device 115 facilitates recording the programmingat step 434. The program may be recorded and stored in memory 145,database 120, and/or any other suitable location. If channel device 115does not receive record input at step 432, the method proceeds to step436.

Channel device 115 determines whether any input is received within apredetermined amount of time at step 436. Display 110 may display firstnotification 150 for a predetermined amount of time (e.g., 30 seconds, 1minute, 5 minutes, or any other suitable amount of time). If input isnot received within the predetermined amount of time, first notification150 may be removed before proceedings to step 438 where display 110displays the second notification 150. Otherwise, method 400 proceeds tostep 440.

At step 440, channel device 115 determines whether channel device 115 ispowered off. If channel device 115 is not powered off, method 400proceeds to step 412. If channel device 115 is powered off at step 440,the method proceeds to step 442 where channel device 115 and/or anyother suitable component restores watch list 135 to include the “mostwatched” channels. As discussed, method 400 begins with watch list 135including the “most watched” channels. However, as user 102 changes thechannels, watch list 135 is revised to include channels that may not bea “most watched” channel. After channel device 115 is powered off atstep 440, channel device 115 and/or any other suitable device determinesthe “most watched” channels and revises watch list 135 to include themost watch channels. The restored watch list 135 may be identical towatch list 135 obtained at step 404. In some embodiments, user 102's useof channel device 115 during method 400 may have modified the “mostwatched” channels. Thus, watch list 135 may include channels that werenot included when channel device 115 obtained the watch list at 404.After channel device 115 restores watch list 135 at step 442, method 400ends.

Modifications, additions, or omissions may be made to method 400depicted in FIG. 4. Method 400 may include more, fewer, or other steps.For example, channel device 115 may not monitor channel changes and maynot revise watch list 135 at steps 408 and 410. For example, steps maybe performed in parallel or in any suitable order. While discussed asspecific components completing the steps of method 400, any suitablecomponent of system 100 may perform any step of method 400. As anotherexample, method 400 describes channel device 115 generating twonotifications 150. Channel device 115 may generate one notification 150,or any other suitable number of notifications 150. In the embodiment,when channel device 115 generates more than two notifications 150,method 400 may continue to display, remove, and receive input for one ormore of the additional notifications 150. In the embodiment when channeldevice 115 generates a single notification 150, method 400 may notperform displaying the second notification 150 at step 438.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,functions, operations, or steps, any of these embodiments may includeany combination or permutation of any of the components, elements,functions, operations, or steps described or illustrated anywhere hereinthat a person having ordinary skill in the art would comprehend.Furthermore, reference in the appended claims to an apparatus or systemor a component of an apparatus or system being adapted to, arranged to,capable of, configured to, enabled to, operable to, or operative toperform a particular function encompasses that apparatus, system,component, whether or not it or that particular function is activated,turned on, or unlocked, as long as that apparatus, system, or componentis so adapted, arranged, capable, configured, enabled, operable, oroperative.

What is claimed is:
 1. A channel device, comprising: a memory configuredto store a watch list, the watch list comprising n predetermined numberof channels, wherein n is an integer and wherein the predeterminednumber of channels are ranked from one to n; and a processor configuredto: obtain the watch list from a network database; determine a changefrom a first channel to a second channel; determine a display timeassociated with the first channel; determine whether the display timeassociated with the first channel meets or exceeds a threshold amount oftime; determine that the first channel is in the watch list; and inresponse to a determination that the display time associated with thefirst channel meets or exceeds the threshold amount of time, update arank of the first channel in the watch list to be one, wherein nochannels are removed from the watch list.
 2. The channel device of claim1, wherein the processor is further configured to: determine programinformation for a first program on a first channel, wherein the firstchannel is a channel of the watch list; determine a first time todisplay a first notification, wherein the first time is a thresholdamount of time before a start time of the first program; and generatethe first notification for display at the first time, the firstnotification including at least a title and the start time of the firstprogram.
 3. The channel device of claim 2, wherein the processor isfurther configured to: determine program information for a secondprogram on a second channel; determine that an input in response to thefirst notification is not received for a threshold amount of time; andupon a determination that the input is not received for the thresholdamount of time, generate a second notification for display thatindicates at least a title and a start time of the second program. 4.The channel device of claim 3, wherein the first notification and thesecond notification each further include one or more of the following: alive stream associated with the program; a request for user input; andcommands for a user to respond to the notification.
 5. The channeldevice of claim 1, wherein the processor is further configured todetermine that the first channel has been watched at least apredetermined number of times, wherein updating the rank of the firstchannel is additionally responsive to the determination that the firstchannel has been watched at least the predetermined number of times. 6.The channel device of claim 1, wherein the first channel was ranked afirst value before being reranked, further including a third channel inthe watch list ranked a second value before the first channel wasreranked, wherein the second value is less than the first value and boththe first and second values are less than n, wherein the processor isfurther configured to, in response to updating the rank of the firstchannel to be one, update a rank of the third channel to be the secondvalue plus one.
 7. The channel device of claim 6, wherein the processoris further configured to store the updated rankings of the first channeland the third channel in the network database upon a determination thatthe channel device is powered off.
 8. The channel device of claim 1,wherein the watch list includes a plurality of channel lists associatedwith a respective plurality of users.
 9. A method, comprising: storing awatch list, the watch list comprising n predetermined number ofchannels, wherein n is an integer and wherein the predetermined numberof channels are ranked from one to n; obtaining the watch list from anetwork database; determining a change from a first channel to a secondchannel; determining a display time associated with the first channel;determining whether the display time associated with the first channelmeets or exceeds a threshold amount of time; determining that the firstchannel is in the watch list; and in response to a determination thatthe display time associated with the first channel meets or exceeds thethreshold amount of time, updating the rank of the first channel in thewatch list to be one, wherein no channels are removed from the watchlist.
 10. The method of claim 9, further including: determining programinformation for a first program on a first channel, wherein the firstchannel is a channel of the watch list; determining a first time todisplay a first notification, wherein the first time is a thresholdamount of time before a start time of the first program; and generatingthe first notification for display at the first time, the firstnotification including at least a title and the start time of the firstprogram.
 11. The method of claim 10, further including: determiningprogram information for a second program on a second channel;determining that an input in response to the first notification is notreceived for a threshold amount of time; and upon a determination thatthe input is not received for the threshold amount of time, generating asecond notification for display that indicates at least a title and astart time of the second program.
 12. The method of claim 11, whereinthe first notification and the second notification each further includeone or more of the following: a live stream associated with the program;a request for user input; and commands for a user to respond to thenotification.
 13. The method of claim 9, further including determiningthat the first channel has been watched at least a predetermined numberof times, wherein updating the rank of the first channel is additionallyresponsive to the determination that the first channel has been watchedat least the predetermined number of times.
 14. The method of claim 9,wherein the first channel was ranked a first value before beingreranked, further including a third channel in the watch list ranked asecond value before the first channel was reranked, wherein the secondvalue is less than the first value and both the first and second valuesare less than n, further including, in response to updating the rank ofthe first channel to be one, updating the rank of the third channel tobe the second value plus one.
 15. The method of claim 14, furtherincluding storing the updated rankings of the first channel and thethird channel in the network database upon a determination that achannel device is powered off.
 16. The method of claim 9, wherein thewatch list includes a plurality of channel lists associated with arespective plurality of users.
 17. A non-transitory computer-readablemedium comprising instructions that, when executed, cause at least oneprocessor to at least: store a watch list, the watch list comprising npredetermined number of channels, wherein n is an integer and whereinthe predetermined number of channels are ranked from one to n; obtainthe watch list from a network database; determine a change from a firstchannel to a second channel; determine a display time associated withthe first channel; determine whether the display time associated withthe first channel meets or exceeds a threshold amount of time; determinethat the first channel is in the watch list; and in response to adetermination that the display time associated with the first channelmeets or exceeds the threshold amount of time, update a rank of thefirst channel in the watch list to be one, wherein no channels areremoved from the watch list.
 18. The non-transitory computer readablemedium of claim 17, wherein the instructions, when executed, cause theat least one processor to: determine program information for a firstprogram on a first channel, wherein the first channel is a channel ofthe watch list; determine a first time to display a first notification,wherein the first time is a threshold amount of time before a start timeof the first program; and generate the first notification for display atthe first time, the first notification including at least a title andthe start time of the first program.
 19. The non-transitory computerreadable medium of claim 18, wherein the instructions, when executed,cause the at least one processor to at least: determine programinformation for a second program on a second channel; determine that aninput in response to the first notification is not received for athreshold amount of time; and upon a determination that the input is notreceived for the threshold amount of time, generate a secondnotification for display that indicates at least a title and a starttime of the second program.
 20. The non-transitory computer readablemedium of claim 19, wherein the first notification and the secondnotification each further include one or more of the following: a livestream associated with the program; a request for user input; andcommands for a user to respond to the notification.
 21. Thenon-transitory computer readable medium of claim 17, wherein theinstructions, when executed, cause the at least one processor to atleast determine that the first channel has been watched at least apredetermined number of times, wherein updating the rank of the firstchannel is additionally responsive to the determination that the firstchannel has been watched at least the predetermined number of times. 22.The non-transitory computer readable medium of claim 17, wherein thefirst channel was ranked a first value before being reranked, furtherincluding a third channel in the watch list ranked a second value beforethe first channel was reranked, wherein the second value is less thanthe first value and both the first and second values are less than n,wherein the instructions, when executed, cause the at least oneprocessor to, in response to updating the rank of the first channel tobe one, update a rank of the third channel to be the second value plusone.
 23. The non-transitory computer readable medium of claim 22,wherein the instructions, when executed, cause the at least oneprocessor to at least store the updated rankings of the first channeland the third channel in the network database upon a determination thata channel device is powered off.
 24. The non-transitory computerreadable medium of claim 17, wherein the watch list includes a pluralityof channel lists associated with a respective plurality of users.